From : Serge Veugelers (sergev@cistron.nl)
Subject : How to operate with more than 1024 shapes
I like the DecodeShape idea better. These you can store in FastRam 
(if available offcourse) and save a lot of precious Chip-ram. In order to get them in
fastram, you'll have to load them in memory yourself :

FSize.l = FileSize("shapes.shp")
Mem.l = AllocMem(FSize,65536)    ; Chip or Fast
if Mem > 0
   Bload("shapes.shp",Mem,FSize) ; I'm not sure about the parameters here, but you get the idea.
else
   Nprint "Not enough Memory"
endif

Load them into memory like I said before, and then type :

CludgeShapes #first_shape,#Number_of_Shapes,Mem

You'll have to store the number of shapes somewhere, because CludgeShapes needs that.
If you use only one file for all levels, than this could be a constant. Otherwise you'll
have to store it in an table somewhere.